package controlador;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;

import javax.swing.JFrame;
import javax.swing.table.AbstractTableModel;

import modelo.Categoria;
import modelo.Datos;

import vista.DlgActualizarCategorias;

public class ContActualizarCategoria {
	private DlgActualizarCategorias dlg = null;
	private ArrayList<Categoria> lista = null;
	private AbstractTableModel tmodelo = null;
	private Categoria cat=null;
	
	public ContActualizarCategoria() {
	}
	
	public void mostrar(JFrame frame) {
		dlg = new DlgActualizarCategorias(frame, this);
		dlg.setLocationRelativeTo(null);
		dlg.setVisible(true);
		
		lista = Datos.getInstancia().getCategorias().categoriasGeneral();
		
		tmodelo = new AbstractTableModel() {
			private static final long serialVersionUID = 1L;
         
			@Override
			public int getColumnCount() {
				return 1;
			}

			@Override
			public String getColumnName(int col) {
				switch (col) {
				case 0: return "Categoria";
				}
				return null;
			}

			@Override
			public int getRowCount() {
				return lista.size();
			}

			@Override
			public Object getValueAt(int row, int col) {
				Categoria obj = lista.get(row); 
				switch (col) {
				case 0: return obj.getNombre();
				}
				return null;
			}
		};
		
		dlg.getTblCategorias().setModel(tmodelo);
		
		dlg.getBtAnadir().addActionListener(new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent arg0) {
				ContCategoria contcat = new ContCategoria();
				
				contcat.mostrarAnadir(dlg);
				lista = Datos.getInstancia().getCategorias().categoriasGeneral();
				tmodelo.fireTableStructureChanged();
				
			}
		});
		
		dlg.getBtModificar().addActionListener(new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent arg0) {
				ContCategoria contcat = new ContCategoria();	
				
			   if (dlg.getTblCategorias().getSelectedRow()!=-1)
			      { 
				    cat = lista.get(dlg.getTblCategorias().getSelectedRow()); 
					contcat.mostrarModificar(dlg,cat);
					tmodelo.fireTableStructureChanged();
			      }
			   else
				   dlg.mostrarMensaje("Seleccione una categoria");
			}
		});
		
		dlg.getBtSalir().addActionListener(new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent arg0) {
				dlg.dispose();
			}
		});
	}
}